package com.kevin.mapping.script.lexer;

import com.kevin.mapping.script.engine.JSONEnv;

import java.math.BigDecimal;

public class LongValue extends Token {

    private Long value;

    public LongValue(int type, Long content) {
        super(type);
        this.value = content;
    }

    public String toString() {
        return "value=" + value + " type=" + (char) type;
    }

    public Long getValue(JSONEnv env) {
        return value;
    }

    public void setValue(Long value) {
        this.value = value;
    }


    @Override
    public Integer getIntValue(JSONEnv env) {
        return value.intValue();
    }

    @Override
    public Long getLongValue(JSONEnv env) {
        return value;
    }

    @Override
    public Double getDoubleValue(JSONEnv env) {
        return value.doubleValue();
    }

    @Override
    public BigDecimal getBigDecimalValue(JSONEnv env) {
        return new BigDecimal(value);
    }

    @Override
    public String getStrValue(JSONEnv env) {
        return String.valueOf(value);
    }

    @Override
    public Object getObjectValue(JSONEnv env) {
        return value;
    }

}
